<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Vue 示例</title>
</head>
<body>
    <div id="app">
       <p v-if="status === 1">当status为1时显示该行</p>
       <p v-else-if="status === 2">当status为2时显示该行</p>
       <p v-else>否则显示该行</p>
       <!-- 如果一次判断的是多个元素，可以在 Vue扣内置的<template> 元素上使用条件指令，最终渲染的结果不会包含该元素， -->
       <template v-if="status === 1">
           <p>XXXXXX</p>
           <p>XXXXXX</p>
           <p>XXXXXX</p>
           <p>XXXXXX</p>
       </template>
       <!-- Vue 在渲染元素时 ，出于效率考虑，会尽可能地复用已有的元素而非重新渲染， 示例: -->
       <template v-if="type === 'name'">
            <label>用户名：</label>
            <input placeholder="输入用户名">
       </template>
       <template v-else>
            <label>邮箱：</label>
            <input placeholder="输入邮箱">
       </template>
       <button @click="handleToggleClick">切换输入类型</button>
       <!-- 如果你不希望这样做，可以使用 Vue扣提供的 key 属性，它可以让你自己决定是否要复用元 -->
       <!-- 给两个<input>元素都增加 key 后 ， 就不会复用了，切换类型时键入的内容也会被删除，不过 <label>元素仍然是被复用的，因为没有添加 key属性 -->
       <br>
       <template v-if="type === 'name'">
            <label>用户名：</label>
            <input placeholder="输入用户名" key="name-input">
        </template>
        <template v-else>
                <label></label>邮箱：</label>
                <input placeholder="输入邮箱" key="mail-input">
        </template>
        <button @click="handleToggleClick">切换输入类型</button>
    </div>


    <script src="http://unpkg.com/vue/dist/vue.min.js"></script>
    <script>
        // 变量app表示一个vue实例
        var app = new Vue({
            el: '#app', //用于指定一个页面中存在的Dom元素来挂载Vue示例。挂载成功后可以使用app.$el来访问该元素
            data: {
                status: 1,
                type: 'name'
            },
            methods: {
                handleToggleClick:function(){
                    this.type = this.type === 'name' ? 'mail' : 'name';
                }
            },
        })
    </script>
</body>
</html>